/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.fsl.sicotec.Datos;

import com.fsl.sicotec.comun.Entidades.Servicio;
import SG.Coneccion.Conecta;
import java.sql.*;
import java.util.Collection;
import java.util.ArrayList;

/**
 *
 */
public class DaoServicio {
    // Varibles para las Transacciones

    Connection cn = null;
    CallableStatement cs = null;
    ResultSet rs = null;
    Servicio servicio = null;
    Collection lista;

    public Collection mostrarServicio() {
        try {
            cn = new Conecta().getConexion();
            cs = cn.prepareCall("{call sp_si_servicio_mostrar ()}");
            rs = cs.executeQuery();
            lista = new ArrayList();
            while (rs.next()) {
                servicio = new Servicio();
                servicio.setCod_servicio(Integer.parseInt(rs.getString(1)));
                servicio.setVdescripcion(rs.getString(2));
                servicio.setDprecio( rs.getFloat(3));
                  servicio.setBestado(rs.getInt(4));
                  servicio.setVaccion(rs.getString(5));
                  servicio.setVusuario_creacion(rs.getString(6));
                  servicio.setVusuario_control(rs.getString(8));
                  servicio.setVestacion(rs.getString(10));
                  //vaccion,v
                //icod_servicio,vdescripcion,dprecio,bestado,vaccion,vusuario_creacion
                //,tsfecha_creacion,vusuario_control,tsfecha_control,vestacion

                lista.add(servicio);
            }
            rs.close();
            cs.close();
            cn.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return lista;
    }



    public String registrarServicio(Servicio objServicio) {
        String descripcion = "";
        try {
            cn = new Conecta().getConexion();
            cs = cn.prepareCall("{call sp_si_servicio_insertar (?,?,?,?,?,?,?)}");
            cs.setString(1, objServicio.getVdescripcion());
            cs.registerOutParameter(1, Types.VARCHAR);
            cs.setFloat(2, objServicio.getDprecio());
            cs.setInt(3, objServicio.getBestado());
            cs.setString(4, objServicio.getVaccion());
            cs.setString(5, objServicio.getVusuario_creacion());
            cs.setString(6, objServicio.getVusuario_control());
            cs.setString(7, objServicio.getVestacion());
            cs.execute();
            descripcion = cs.getString(1);
            cs.close();
            cn.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return descripcion;
    }

  public boolean existeServicio(String descripcion) {
        boolean existe = true;
        String valor = "";

        try {
            cn = new Conecta().getConexion();
            cs = cn.prepareCall("{call sp_si_servicio_existe (?)}");
            cs.setString(1, descripcion);
            rs = cs.executeQuery();
            while (rs.next()) {
                valor = rs.getString(1);
            }
            if (valor.equals("0")) {
                existe = false;
            }
            rs.close();
            cs.close();
            cn.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return existe;
    }

     public void eliminarServicio(int codCliente, String usuario, String estacion) {
        try {
            cn = new Conecta().getConexion();
            cs = cn.prepareCall("{call sp_si_servicio_eliminar (?,?,?)}");
            cs.setInt(1, codCliente);
            cs.setString(2, usuario);
            cs.setString(3, estacion);
            cs.execute();
            cs.close();
            cn.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

     public void actualizarServicio(Servicio objServicio) {
        try {
            cn = new Conecta().getConexion();
            cs = cn.prepareCall("{call sp_si_servicio_actualizar (?,?,?,?,?,?,?,?)}");
            cs.setInt(1, objServicio.getCod_servicio());
            cs.setString(2,objServicio.getVdescripcion() )                    ;
             //cs.registerOutParameter(1, Types.VARCHAR);
                    cs.setFloat(3, objServicio.getDprecio())
                    ;
                    cs.setInt(4,objServicio.getBestado());
                    cs.setString(5, objServicio.getVaccion());
cs.setString(6, objServicio.getVusuario_creacion());
cs.setString(7, objServicio.getVusuario_control());
cs.setString(8, objServicio.getVestacion());
                            //             cs.setInt(1, objServicio.getCod_servicio());
//             cs.setString(2, objServicio.getVdescripcion());
//            cs.setFloat(3, objServicio.getDprecio());
//            cs.setInt(4, objServicio.getBestado());
//            cs.setString(5, objServicio.getVaccion());
//            cs.setString(6, objServicio.getVusuario_creacion());
//            cs.setString(7, objServicio.getVusuario_control());
//            cs.setString(8, objServicio.getVestacion());
            cs.execute();
          //  String s= cs.getString(1);
            cs.close();
            cn.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

         public Collection mostrarClienteCodigo(int codigo) {
        try {
            cn = new Conecta().getConexion();
            cs = cn.prepareCall("{call sp_si_servicio_mostrar_x_codigo (?)}");
            cs.setInt(1, codigo);
            rs = cs.executeQuery();
            lista = new ArrayList();

            while (rs.next()) {
                servicio = new Servicio();
                 servicio.setCod_servicio( rs.getInt(1));
                servicio.setVdescripcion(rs.getString(2));
                servicio.setDprecio(rs.getFloat(3));
                lista.add(servicio);
            }
            rs.close();
            cs.close();
            cn.close();
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return lista;
    }
}
